package com.czj.validator;

import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;

/**
 * 当前类 就是一个校验器， 专门用于校验属性中的参数 是否符合需求
 *
 * 状态约束校验器
 * Created by macro on 2018/4/26.
 */
public class FlagValidatorClass implements ConstraintValidator<FlagValidator,Integer> {
    private String[] values;
    @Override
    public void initialize(FlagValidator flagValidator) {
        // 读取 允许设置的值
        this.values = flagValidator.value();
    }

    @Override  // 进行校验
    public boolean isValid(Integer value, ConstraintValidatorContext constraintValidatorContext) {
        boolean isValid = false;
        if(value==null){
            //当状态为空时使用默认值
            return true;
        }
        for(int i=0;i<values.length;i++){  // 遍历属性值  是否是 我们允许设置的值 某一个
            if(values[i].equals(String.valueOf(value))){
                isValid = true;  // 校验成功
                break;
            }
        }
        return isValid; // 检验失败
    }
}
